home *** CD-ROM | disk | FTP | other *** search
/ Your Web Site Creator / Your Web Site Creator.iso / WebSite / data1.cab / Program_Executable_Files / Classes / BBCANVA2.CLA (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-13  |  4.0 KB  |  150 lines

  1. import java.applet.Applet;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Event;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.MediaTracker;
  10. import java.awt.image.CropImageFilter;
  11. import java.awt.image.FilteredImageSource;
  12. import java.awt.image.ImageObserver;
  13. import java.net.MalformedURLException;
  14. import java.net.URL;
  15.  
  16. public class BitmapButtonCanvas2 extends Canvas {
  17.    Image osImage;
  18.    Graphics osg;
  19.    URL theURL;
  20.    Image noMouseImage;
  21.    Image mouseOverImage;
  22.    boolean drawNoMouseImage = true;
  23.    boolean drawMouseOverImage = false;
  24.    Applet theApplet;
  25.    Color bkColor;
  26.    Image bkImage;
  27.  
  28.    public BitmapButtonCanvas2(Applet var1, int var2) {
  29.       this.theApplet = var1;
  30.       this.GetParameters(var1, var2);
  31.    }
  32.  
  33.    public synchronized void reshape(int var1, int var2, int var3, int var4) {
  34.       super.reshape(var1, var2, var3, var4);
  35.       this.osImage = null;
  36.       this.osg = null;
  37.    }
  38.  
  39.    public void paint(Graphics var1) {
  40.       this.update(var1);
  41.    }
  42.  
  43.    public void update(Graphics var1) {
  44.       if (this.osImage == null) {
  45.          this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  46.          this.osg = this.osImage.getGraphics();
  47.       }
  48.  
  49.       this.osg.setColor(((Component)this).getBackground());
  50.       this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
  51.       if (this.bkImage != null) {
  52.          int var2 = this.bkImage.getWidth(this);
  53.          int var3 = this.bkImage.getHeight(this);
  54.          int var4 = ((Component)this).size().width / var2;
  55.          int var5 = ((Component)this).size().height / var3;
  56.          ++var4;
  57.          ++var5;
  58.  
  59.          for(int var6 = 0; var6 < var5; ++var6) {
  60.             for(int var7 = 0; var7 < var4; ++var7) {
  61.                this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
  62.             }
  63.          }
  64.       }
  65.  
  66.       if (this.drawNoMouseImage && this.noMouseImage != null) {
  67.          this.osg.drawImage(this.noMouseImage, 0, 0, ((Component)this).size().width, ((Component)this).size().height, this);
  68.       } else if (this.drawMouseOverImage && this.mouseOverImage != null) {
  69.          this.osg.drawImage(this.mouseOverImage, 0, 0, ((Component)this).size().width, ((Component)this).size().height, this);
  70.       }
  71.  
  72.       var1.drawImage(this.osImage, 0, 0, (ImageObserver)null);
  73.    }
  74.  
  75.    public void GetParameters(Applet var1, int var2) {
  76.       String var3 = var1.getParameter("bitmapButtonImageWidth" + var2);
  77.       int var4 = AppletParam2.GetInt(var3, 100);
  78.       var3 = var1.getParameter("bitmapButtonImage" + var2);
  79.       if (var3 != null) {
  80.          try {
  81.             MediaTracker var5 = new MediaTracker(var1);
  82.             Image var6 = var1.getImage(var1.getCodeBase(), var3);
  83.             var5.addImage(var6, 0);
  84.             var5.waitForAll();
  85.             int var7 = var6.getHeight((ImageObserver)null);
  86.             CropImageFilter var8 = new CropImageFilter(0, 0, var4, var7);
  87.             this.noMouseImage = ((Component)this).createImage(new FilteredImageSource(var6.getSource(), var8));
  88.             CropImageFilter var9 = new CropImageFilter(var4, 0, var4, var7);
  89.             this.mouseOverImage = ((Component)this).createImage(new FilteredImageSource(var6.getSource(), var9));
  90.          } catch (Exception var11) {
  91.             System.out.println(((Throwable)var11).getMessage());
  92.          }
  93.       }
  94.  
  95.       var3 = var1.getParameter("bitmapButtonUrl" + var2);
  96.       if (var3 != null) {
  97.          try {
  98.             this.theURL = new URL(var3);
  99.          } catch (MalformedURLException var10) {
  100.          }
  101.       }
  102.  
  103.       var3 = var1.getParameter("bitmapButtonBkColor" + var2);
  104.       this.bkColor = AppletParam2.GetColor(var3, (Color)null);
  105.       if (this.bkColor != null) {
  106.          ((Component)this).setBackground(this.bkColor);
  107.       }
  108.  
  109.       var3 = var1.getParameter("bitmapButtonBkImage" + var2);
  110.       this.bkImage = var1.getImage(var1.getCodeBase(), var3);
  111.       ((Component)this).repaint();
  112.    }
  113.  
  114.    public boolean mouseEnter(Event var1, int var2, int var3) {
  115.       if (this.theURL != null) {
  116.          this.theApplet.showStatus(this.theURL.toString());
  117.       }
  118.  
  119.       this.drawNoMouseImage = false;
  120.       this.drawMouseOverImage = true;
  121.       ((Component)this).repaint();
  122.       return true;
  123.    }
  124.  
  125.    public boolean mouseExit(Event var1, int var2, int var3) {
  126.       this.theApplet.showStatus("");
  127.       this.drawNoMouseImage = true;
  128.       this.drawMouseOverImage = false;
  129.       ((Component)this).repaint();
  130.       return true;
  131.    }
  132.  
  133.    public boolean mouseDown(Event var1, int var2, int var3) {
  134.       if (this.theURL != null) {
  135.          this.theApplet.getAppletContext().showDocument(this.theURL);
  136.          return true;
  137.       } else {
  138.          return false;
  139.       }
  140.    }
  141.  
  142.    public Dimension minimumSize() {
  143.       return new Dimension(10, 10);
  144.    }
  145.  
  146.    public Dimension preferredSize() {
  147.       return new Dimension(10, 10);
  148.    }
  149. }
  150.